﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Collections.ObjectModel;
using NHibernate.Mapping;
using NHibernate.Mapping.Attributes;

namespace VemTransporte.Models.Basica
{
    [Class(Table="Bairro")]
    public class Bairro
    {
        #region ATRIBUTOS
        private int id;
        private string nome;
        private Cidade _cidade;
        private IList<Endereco> _Enderecos;
        #endregion

        #region PROPRIEDADES
        [Id(Name = "Id", Column="PK_IdBairro")]
        [Generator(1, Class="native")]
        public virtual int Id
        {
            get { return id; }
            set { id = value; }
        }

        [Property(Column = "BAI_Nome")]
        public virtual string Nome
        {
            get { return nome; }
            set { nome = value; }
        }

        [ManyToOne(Name = "Cidade", Column = "FK_IdCidade", ClassType=typeof(Cidade), Fetch=FetchMode.Join)]
        public virtual Cidade Cidade
        {
            get { return _cidade; }
            set { _cidade = value; }
        }

        [Bag]
        [Key(1,Column = "FK_IdBairro")]
        [OneToMany(2, ClassType=typeof(Endereco))]
        public virtual  IList<Endereco> Enderecos
        {
            get { return this._Enderecos; }
            set { this._Enderecos = value; }
        }
        #endregion

        #region CONSTRUCTORES
        public Bairro() { }
        #endregion        
    }
}